'use strict';

exports.main = async (event, context) => {
  const { action } = event;
  
  switch(action) {
    // 分类管理
    case 'getCategories':
      return handleGetCategories(isAdmin, tenant_id);
    case 'addCategory':
      return handleAddCategory(event.category, isAdmin, tenant_id);
    case 'updateCategory':
      return handleUpdateCategory(event.id, event.category, isAdmin, tenant_id);
    case 'deleteCategory':
      return handleDeleteCategory(event.id, isAdmin, tenant_id);
    case 'checkAuth':
      return await checkAuth(event);
    case 'clearExampleData':
      return handleClearExampleData(isAdmin);
    // 商户管理
    case 'getTenants':
      return isAdmin ? handleGetTenants() : { code: 403, message: '需要管理员权限' };
    default:
      return {
        code: -1,
        message: '未知的操作: ' + action
      }
  }
};

/**
 * 检查用户权限
 */
async function checkAuth(event) {
  const { uniIdToken } = event;
  
  try {
    // 获取uniID实例
    const uniID = require('uni-id-common')
    const uniIDIns = uniID.createInstance({
      context
    })
    
    // 校验token
    const auth = await uniIDIns.checkToken(uniIdToken)
    
    if (auth.code !== 0) {
      return {
        code: auth.code,
        message: auth.message
      }
    }
    
    // 返回用户信息
    return {
      code: 0,
      userInfo: auth.userInfo
    }
  } catch (e) {
    return {
      code: -2,
      message: '验证失败: ' + e.message
    }
  }
}

async function handleDeleteFood(id, isAdmin, tenant_id) {
  // 函数实现...
}

// 清理示例数据
async function handleClearExampleData(isAdmin) {
  if (!isAdmin) {
    return { code: 403, message: '需要管理员权限' };
  }
  
  try {
    // 删除名为"示例菜品"的数据
    const result = await db.collection('foods')
      .where({
        name: "示例菜品"
      })
      .remove();
    
    return { 
      code: 0, 
      message: `已清理${result.deleted || 0}条示例数据`
    };
  } catch (err) {
    console.error('清理示例数据错误:', err);
    return { code: 500, message: '清理示例数据错误: ' + err.message };
  }
} 